package com.example.nacosdemo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 配置控制器，用于演示从 Nacos 配置中心获取配置
 * 使用 @RefreshScope 注解实现配置的动态刷新
 */
@RestController
@RefreshScope
public class ConfigController {

    // 从配置中获取示例属性，如果 Nacos 中没有配置则使用默认值
    @Value("${demo.config.message:默认配置信息}")
    private String message;

    @Value("${server.port:8080}")
    private String port;

    /**
     * 获取配置信息的接口
     * @return 配置信息
     */
    @GetMapping("/config")
    public String getConfig() {
        return "从 Nacos 获取的配置信息: " + message + "，服务端口: " + port;
    }

    /**
     * 健康检查接口
     * @return 健康状态
     */
    @GetMapping("/health")
    public String health() {
        return "服务运行正常，已连接到 Nacos 配置中心";
    }

    /**
     * 获取服务信息接口
     * @return 服务信息
     */
    @GetMapping("/info")
    public String info() {
        return "Spring Boot + Nacos 演示项目\n" +
               "- 配置中心已集成\n" +
               "- 服务发现已开启\n" +
               "- 支持配置动态刷新";
    }
}